package com.ship.dispatch.bo.orderPay;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <b>SpFundManageDetailRq</b>
 *
 * @description: SpFundManageDetailRq <br>
 * @date: 2024/8/23 14:02 <br>
 * @author: lhm <br>
 * @version: 1.0 <br>
 */
public class SpFundManageDetailRq {
    private List<Long> ids;
    private Long id;
    /**
     * 公司名称
     */
    @ApiModelProperty(value = "公司名称")
    private String corporateName;

    /**
     * 导出时使用参数，选中的公司名称集合
     */
    @TableField(exist = false)
    private List<String> corporateNames;

    /**
     * 公司类型（1：第三方计量公司、2：船舶代理公司）
     */
    @ApiModelProperty(value = "公司类型（1：第三方计量公司、2：船舶代理公司）")
    private Integer corporateType;

    private String corporateTypeStr;

    /**
     * 关联合同id
     */
    @ApiModelProperty(value = "关联合同id")
    private Long contractId;

    /**
     * 关联合同名称
     */
    @ApiModelProperty(value = "关联合同名称")
    private String contractName;

    /**
     * 合同类型（1：船舶代理合同、2：保险合同（货险、人险）、3：第三方计量合同、4：租金相关合同--船运合同、5：加油合同）
     */
    @ApiModelProperty(value = "合同类型（1：船舶代理合同、2：保险合同（货险、人险）、3：第三方计量合同、4：租金相关合同--船运合同、5：加油合同）")
    private Integer contractType;

    /**
     * 关联合同地址
     */
    @ApiModelProperty(value = "关联合同地址")
    private String contractAddress;

    /**
     * 贸易主体(国贸、新贸)
     */
    @ApiModelProperty(value = "贸易主体(国贸、新贸)")
    private Integer tradeBody;

    private String tradeBodyStr;

    /**
     * 签订日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date signingDate;

    /**
     * 合同有效期（单位年）
     */
    @ApiModelProperty(value = "合同有效期（单位年）")
    private BigDecimal contractValidity;

    /**
     * 账户余额(更新)
     */
    @ApiModelProperty(value = "账户余额(更新)")
    private BigDecimal accountBalance;

    private String accountBalanceStr;

    /**
     * 订单数量
     */
    @ApiModelProperty(value = "订单数量")
    private Integer fundOrderNumber;

    /**
     * 账户余额(编辑后的余额，如果该字段有值，以后用户余额使用该字段值)
     */
    @ApiModelProperty(value = "账户余额(编辑后的余额，如果该字段有值，以后用户余额使用该字段值)")
    private BigDecimal accountEditBalance;

    /**
     * 初始账户余额
     */
    @ApiModelProperty(value = "初始账户余额")
    private BigDecimal accountInitialBalance;

    /**
     * 资金管理id
     */
    @ApiModelProperty(value = "资金管理id")
    private Long fundManageId;

    @ApiModelProperty(value = "最新支付时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date payDate;

    public List<Long> getIds() {
        return ids;
    }

    public void setIds(List<Long> ids) {
        this.ids = ids;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCorporateName() {
        return corporateName;
    }

    public void setCorporateName(String corporateName) {
        this.corporateName = corporateName;
    }

    public List<String> getCorporateNames() {
        return corporateNames;
    }

    public void setCorporateNames(List<String> corporateNames) {
        this.corporateNames = corporateNames;
    }

    public Integer getCorporateType() {
        return corporateType;
    }

    public void setCorporateType(Integer corporateType) {
        this.corporateType = corporateType;
    }

    public String getCorporateTypeStr() {
        return corporateTypeStr;
    }

    public void setCorporateTypeStr(String corporateTypeStr) {
        this.corporateTypeStr = corporateTypeStr;
    }

    public Long getContractId() {
        return contractId;
    }

    public void setContractId(Long contractId) {
        this.contractId = contractId;
    }

    public String getContractName() {
        return contractName;
    }

    public void setContractName(String contractName) {
        this.contractName = contractName;
    }

    public Integer getContractType() {
        return contractType;
    }

    public void setContractType(Integer contractType) {
        this.contractType = contractType;
    }

    public String getContractAddress() {
        return contractAddress;
    }

    public void setContractAddress(String contractAddress) {
        this.contractAddress = contractAddress;
    }

    public Integer getTradeBody() {
        return tradeBody;
    }

    public void setTradeBody(Integer tradeBody) {
        this.tradeBody = tradeBody;
    }

    public String getTradeBodyStr() {
        return tradeBodyStr;
    }

    public void setTradeBodyStr(String tradeBodyStr) {
        this.tradeBodyStr = tradeBodyStr;
    }

    public Date getSigningDate() {
        return signingDate;
    }

    public void setSigningDate(Date signingDate) {
        this.signingDate = signingDate;
    }

    public BigDecimal getContractValidity() {
        return contractValidity;
    }

    public void setContractValidity(BigDecimal contractValidity) {
        this.contractValidity = contractValidity;
    }

    public BigDecimal getAccountBalance() {
        return accountBalance;
    }

    public void setAccountBalance(BigDecimal accountBalance) {
        this.accountBalance = accountBalance;
    }

    public String getAccountBalanceStr() {
        return accountBalanceStr;
    }

    public void setAccountBalanceStr(String accountBalanceStr) {
        this.accountBalanceStr = accountBalanceStr;
    }

    public Integer getFundOrderNumber() {
        return fundOrderNumber;
    }

    public void setFundOrderNumber(Integer fundOrderNumber) {
        this.fundOrderNumber = fundOrderNumber;
    }

    public BigDecimal getAccountEditBalance() {
        return accountEditBalance;
    }

    public void setAccountEditBalance(BigDecimal accountEditBalance) {
        this.accountEditBalance = accountEditBalance;
    }

    public BigDecimal getAccountInitialBalance() {
        return accountInitialBalance;
    }

    public void setAccountInitialBalance(BigDecimal accountInitialBalance) {
        this.accountInitialBalance = accountInitialBalance;
    }

    public Long getFundManageId() {
        return fundManageId;
    }

    public void setFundManageId(Long fundManageId) {
        this.fundManageId = fundManageId;
    }

    public Date getPayDate() {
        return payDate;
    }

    public void setPayDate(Date payDate) {
        this.payDate = payDate;
    }
}
